{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d83381cc",
   "metadata": {},
   "source": [
    "## 用于分类的线性模型"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c7d9969",
   "metadata": {},
   "source": [
    "线性模型也用于分类问题，首先来看看二分类："
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6ae86601",
   "metadata": {},
   "source": [
    "$\\hat{y} = w[0] * x[0] + w[1] * x[1] + ... + w[p] *x[p] + b > 0$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "683d39b4",
   "metadata": {},
   "source": [
    "该公式看起来与线性回归的公式相同，但在此，返回的$\\hat{y}$并不是特征的加权求和，返回的函数值其实要与设置的**阈值**进行比较。如果函数值小于0，则设置类别为-1（可以自定义），大于0则设置类别为1。对于所有用于分类的线性模型，预测规则通用。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a0cb2b39",
   "metadata": {},
   "source": [
    "对于线性回归的模型，返回的是描述特征的函数，可能是直线，平面，超平面。对于线性分类模型，输入函数是**决策边界**。换句话说，线性分类器是利用直线，平面或者超平面来分开类别的分类器（不限于二分类）。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f3ba01b",
   "metadata": {},
   "source": [
    "学习线性模型有很多算法，区别于下面两点：\n",
    "- 系数和截距的特点组合对训练数据拟合好坏的度量方法(**损失函数**)\n",
    "- 是否使用正则化及使用的是哪种正则化的方法\n",
    "\n",
    "不同的算法使用不同的方法度量“对训练集拟合的好坏”。但是由于数学技术上的原因，不可能调节$w$和$b$使得算法产生的误分类数量最少。所以说上面的第一条的选择并不重要。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f15d4b43",
   "metadata": {},
   "source": [
    "最常见的两种线性分类算法是**Logistic**回归和**线性支持向量机**。前者在linear_model.LogisticRegression,后者在svm.LinearSVC。前者虽然带有Regression一词，但其不为回归算法，而是分类算法，不应与LinearRegression混淆。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a51b70ac",
   "metadata": {},
   "source": [
    "下面是将两个分类算法用于forge数据集的结果，并且将其可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "09fe7324",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "F:\\Anaconda\\lib\\site-packages\\sklearn\\utils\\deprecation.py:77: DeprecationWarning: Function make_blobs is deprecated; Please import make_blobs directly from scikit-learn\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1c2059fd7f0>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import mglearn\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import LinearSVC\n",
    "\n",
    "X,y = mglearn.datasets.make_forge()\n",
    "\n",
    "fig, axes = plt.subplots(1, 2, figsize=(10, 3))\n",
    "\n",
    "for model, ax in zip([LinearSVC(), LogisticRegression()], axes):\n",
    "    clf = model.fit(X, y)\n",
    "    mglearn.plots.plot_2d_separator(clf, X, fill=False, eps=0.5, ax=ax, alpha=.7)\n",
    "    mglearn.discrete_scatter(X[:, 0], X[:, 1], y, ax=ax)\n",
    "    ax.set_title(\"{}\".format(clf.__class__.__name__))\n",
    "    ax.set_xlabel(\"Feature 0\")\n",
    "    ax.set_ylabel(\"Feature 1\")\n",
    "axes[0].legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b3afc221",
   "metadata": {},
   "source": [
    "两个模型默认使用L2正则化，就像Ridge回归那样（岭回归）\n",
    "\n",
    "对于LogisticRegression和LinearSVC，决定正则化强度的权衡函数叫做c。c值越大，对应的正则化越弱，即c越大，LogisticRegression和LinearSVC将尽可能将训练集拟合到最好，如果c值较小，那么模型更强调使系数向量$w$接近于0"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9f8b76b9",
   "metadata": {},
   "source": [
    "参数c的作用还有。较小的c值可以让算法尽量适应大多数数据点，较大的c值更强调每个数据点都分类正确。下面是使用LinearSVC分别采用不同c值的图示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7f300f9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAD7CAYAAAB5cxwzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XlcVPX+P/DXYVd2EBNFUykXUAEBN4aWm0tYdsvM61rd3FJzb7v67eZNU6+muZVpWlmp6bUs7UapdesHiAqIC4iVtJgI4oYsysDA+f0BMzEIODPMzDlnzuv5eJxH6Sy8Gec1533OfM7nI4iiCCIiIiIiJXKSugAiIiIiIkuxmSUiIiIixWIzS0RERESKxWaWiIiIiBSLzSwRERERKRabWSIiIiJSLDazRERERKRYbGYbIQjCGEEQ0gVBKBUEIV8QhERBEDRW/hnugiC8JwhCsSAIBYIgzL3N/efU3u967ePc69y2SBCEU4Ig6ARBWNjI7/O7IAhlgiB8LghCQJ3bAgRB2FN72++CIIyx1mOJbMVOGR0pCMIhQRBuCILwfQO3RwqCkFF7e4YgCJFNPJfNcmarxxKZSu55FGr8WxCEK7XbckEQBFMe28DPYZblRhRFbvU2AHMBFAIYDsATgCuAYQBWWPnnLAWQBMAfQHcABQAebOS+QwBcBBBee//vASyrc/tTABIAfAFgYb3HhgMoAXAPAC8A2wF8Uuf2HQB21t6mAXAdQHhzH8uNm602O2Z0IICRAP4J4Pt6t7kB+B3AHADuAGbW/tmtkeeySc5s+Vhu3EzZlJBHAFMA/AggBEA7AKcBPGvKYxuog1mW2SZ5AXLbAPgCKAXwhB1+Vh6AwXX+vKixN1/tG3NJnT8/AKCggft9jFub2SUAttf5cyiACgDetR88FQC61Ln9I9Q2ys15LDduttjsmdE6P3NiAzvPwbUZFur83Tk0cEBqy5zZ6rFS/ztzU8amlDwCOARgcp3bJgA4bMpj6/0cZlmGG4cZ3Ko/AA8Ae0x9gCAILwuCUNTY1shj/AG0BXCizl+fQM3RVUPCG7jvHYIgBJpQotFjRVHMRW0oarcqURR/aqSO5jyWyBbsklEThAM4KdbuOWqdRMPvf1vmzFaPJTKFUvLY0D403MTH1sUsy5CL1AXIUCCAy6Io6kx9gCiKywAsM/PneNX+93qdv7uOmiOwxu5f/76ovf8VE37W9Xp/p/9ZVU3c1tzHEtmCvTJ6O01lw9z7SpVRc34HooYoJY8N7UO9asfNMssKx2b2VlcAtBIEwcWccFqgtPa/PgDK6/x/SRP396nzZ/3/N3b/ph5b92dVN3Fbcx9LZAv2yujtNJUNc+8rVUbN+R2IGqKUPDa0Dy0VRVEUBIFZVjgOM7hVKmqay0dNfYAgCPNrr+BscGvoMaIoXgOQDyCizl9HAMhu5MdkN3Dfi6Io3u6s7C2PFQShM2oGuf9Uu7kIgnB3I3U057FEtmCXjJogG0CvuldEA+iFht//tsyZrR5LZAql5LGhfWi2iY+ti1mWI6kH7cpxQ82VmRdRE86WqLkyMwHAciv/nGUAfkDN7ATdUNPcNjabwYOome0grPb+38F4NgNX1Ixb2g5gce3/O9feFg6gGEA8agaRfwzjKyQ/Qc1Vkp4A4nDrFZIWPZYbN1ttdsyoc22WngXw/2r/37X2Nv0V0LNQs9N4Dk1fAW2TnNnysdy4mbIpIY+1j8lBzUwGbVHT/NWfzYBZVugmeQFy3QCMBZAOoAw1TeR/AQyw8s9wB/Be7RvwIoC5dW7rgJqvDTrU+Tv9B0YxgPcBuNe57QMAYr3t6Tq3j0HN1ZllqJm+K6DObQEAPq+97RyAMfXqtPix3LjZarNTRp9uIFcf1Lk9CkAGgJsAjgGIqnPbfACJdf5ss5zZ6rHcuJm6KSCPAoDlAK7WbsthPHsBs6zgTah9AYiIiIiIFIdjZomIiIhIsdjMEhEREZFisZklIiIiIsViM0tEREREisVmloiIiIgUy6wVwFq1aiV27NjRRqUQKU9GRsZlURSDpK6jIcwrkTHmlUg5zMmrWc1sx44dkZ6ebllVRA5IEITfpa6hMcwrkTHmlUg5zMkrhxkQERERkWKxmSUiIiIixWIzS0RERESKxWaWiIiIiBSLzSwRERERKRabWSIiIiJSLDazRERERKRYbGaJiIiISLHYzJopPz8fDz5wLwoKCqQuhYhug3klUg7mlSzFZtZMy5cswtHUFCxfskjqUojoNphXIuVgXslSbGbNkJ+fj61bP8C34z2wdev7PHokkjHmlUg5mFdqDjazZli+ZBGe6uWMqGBnPNnTmUePRDLGvBIpB/NKzcFm1kT6o8YX+9b8+cW+4NEjkUwxr0TKwbxSc7GZNZH+qDHYu+YlC/Z24tEjkUwxr0TKwbxSc7GZNUH9o0Y9Hj0SyQ/zSqQczCtZA5tZE9Q/atTj0SOR/DCvRMrBvJI1sJm9jcaOGvV49EgkH8wrkXIwr2QtbGZvo7GjRj0ePdoPJ9Sm22Fe5YN5pdthXuVFyZl1kboAuUs7koqUtFKsTmn6fnEVh+xTkIrVnVB71dq3pC6HZIh5lQ/mlW6HeZUXJWdWcWdm7X3kkHw0E6IoNrpduHABQ/5yD3bvTbRLPWrFCbWViXlVJ+ZVmeSWV31mvbx9+B6yMaVnVnHNrByWu6sb+Lr1KPkUvdxxQm1lYl7ViXlVJrnltW5N/1zwMvNqQ4rP7O2Oiupu0dHRopQuXLgg+nu3EI9N9hQDfFqI+fn5ktQx+7mpon8LZ3HSM08Z1TP5madE/xbO4pwZ0ySpy1Hp/90vzPUSxVd9xAtzvST9968LQLpoRobsuTGvNZhX+2Jemdfm0Od1zoxpRjX5tHAW/Vs4Ma82INfMmpNXRZ2ZlcORQ91T8Tt3fIwnezohKtgZj3cVsH37NsWeopczTqitTMyrOjGvyiS3vG7d+j4W/t8/8FQvZ7TxElBdVYVvx7dgXm3AETKrmGZWLsvd6f/R9eF6qZ9Qc0NVJcb3EJR7il6mOKG2MjGv6sS8KpPc8lr3gPPFvsDylApMiHJFVLAzxvdwYl6tyFEyq5hmVg5HDnX/0fXhCvZ2Qn5JNXafrsQr97gDUN6bQM44obYyMa/qxLwqk9zyCsBwwAkAW09U4KW4mry+1E9gXq3IUTKriGZWLkcO+n90wDhcy1Mq8FSEm6JP0csRJ9RWJuZVnZhXZZJbXusfcDaUV56dtQ5Hyqwimlk5HDnUP8ujD1d+STW2nqjAi3FuRvdX0ptArjihtjIxr+rEvCqT3PIK/JlZAA3mlWdnrcORMivUXDBmmpiYGDE9Pd2G5dwqPz8f4V1DkT2p4Rc8v6QaPTZXIfvHX9CmTRub1TFnxjQg8yO82BcIf7sU2dO8EOzthDlflwMA3nzQ49bHHKyG0PtJxU0+LBeaPlFISTt+2/vFxUYi+WimHSq6lSAIGaIoxkjyw2+DeWVe7Yl5bR7m9SO8ObDmgFOf2eUpFQAazuvsA1Vwin6KeW0GuWfWnLxKdmbW1Dke5XDkYO5ZHj2e7WkeUybUFkVRsh2jmjCvdDvMq3woNa/A7c/K6vHsbPM5UmYlW87W1GXT5LDcXd3Ap12oQsofVVh9pAJuzjBcVNKQmg8CKHJpOKK6mFci5VBqXgEYMvt2egXzSqYzdUJa0YqTOlsyOXPdiZTtLS42UgRwy9bS9da/a2iLi420e81kH1DBJOzMKzkKOee1Q4cOYlVVVbN/R0sXP5Aqs8wrNcacvEoyzMDcyZmlXjO4sVPxZRWmvchKOEVP1Bjmlcj2zp07h/j4eOTk5DTreSxZ/EDKzDKvZA12b2YtmZxZDiuTEKkR80pkHx07dsSZM2cQGRmJ1157DRUVFWY/h6WLHzCzpHR2b2bNnZxZLiuTEKkR80pkH4GBgcjJycHw4cPx6quvonfv3jh8+LBZz2HJ4gfMLDkCuzazlkzOLIeVScgxmHqFL9VgXklKasxr69atsWPHDuzbtw/Xr1/HgAEDMHv2bJSWlt72sZYufsDMkjVInVe7NrPmTs4sl5VJyDHUvcKXbo95JSmpOa8PP/wwsrOzMW3aNKxZswbh4eH4+uuvm3yMJYsfMLNkLVLn1W7NrCXLpslhZRK5kfroR6mkvihJaZhX62BeLcO8Aj4+Pli/fj2Sk5PRsmVLJCQkYPz48bh8+fIt97V0WVJm9lbMrPnkkFe7NbPmTs7sSGsGW5PURz9KxQsczMO8Wgfzahnm9U9xcXE4fvw4XnnlFezcuRPdu3fH9u3bUTNzUQ1LFj9gZhvGzJpPDnm123K25i6bVnd5u8aobflJ/dKD3452wsBPqm2+xKCjqL9kozWXaHTU5TGZ1+ZjXi3DvDYuKysLEydOxJEjRzB06FBs2LABHTp0sGhZUmb2Vsys+WSTV1MnpBWtOAm7KRqbSLn+ZsqEyRcuXBCH/OUekyePlqvZz00VZ8d5ieKrPuLsOC9JJqRXorqvm36z1usHGU/CzrxKi3m1DPPaNJ1OJ65evVr09PQUPT09xbVr14o6nc7s18JamXWUvIoiM2sJueRVtjtHa5JyNSJr0a/qcmFuzZvmwlwvs1Z3Uav6r5t+s9br5wg7R7lhXtWLeTXdr7/+Kg4ZMkQEIPbv31/Mysoy+/WwBkfIqygys5aQU14lWQHMnuQwMNkaOH2KZXiBg7Iwr+rGvJquY8eOSExMxEcffYSffvoJUVFRWLhwIbRard1qcJS8AsysJeSUV7uNmZVK3XFBSh3/U39MiuHvrTg2xRE19roZbrfC66f0MXhyw7yqF/NqeV4vXbqEOXPmYNu2bQgLC8O7776LAQMGWLnCWzlCXgFm1hJyy6tDn5l1lJVN5HT0oySWXOFL0mFe1Y15tVxQUBA+/vhj/Pe//0VJSQk0Gg2ee+45lJSU2OxnOkpeAWbWEnLLq0OfmW3oak0pjh7z8/Px93Gj8MG2nWYfodjj6MdRWXKFr7kc9UyPFOSSV8DyzDKvlmNerZPXkpISLFiwAOvXr0dISAg2bNiAhx56yAoVGnOEvOofy8yaT255lfzMbG5uLqbPmAW/wCA4OTvDLzAI02fMQm5ubrOeV04rmzRn3jq5Hf0oSfLRTJMGjlsaNDVSQ14ByzPLvFqOebUOb29vrF27FikpKfD29sbDDz+MLl26wsc/0GqZdZS86h/LzJpPbnmV9MxsYmIiRo4eC/ceg+EePhAuvq2hu14IbfZBaLP2Y9eObUhISLDouZuaQ8+eR4/NnbfOHkc/ZDk1nOnRU0NegeZllnmVNzXlFQD27t2LJ0b+DRUVFXByawn/BybCrV0YKk5/26zMOkpeAWZWzszJq2TNbG5uLiKjY+E1bD7c23W/5XZtXg5K9y3B8Yw0hIaGmvXccvrawFEGyFPD1LJzVEteAWbWkaklr4BxZgV3T1xNXAvthTPw6BiFwAefQ1XpVYsyy7ySvShimMGq1WtrzvA0sGMEAPd23eEePghvrlln9nPL5WsDRxogT+qmhrwCzCw5jrqZdWvVAXeMWw7/gVOgvXAGF7ZMg/bCT3ALe8DszDKvJEeSnZn1CwyC54ilcPUPbvQ+ldfyUbZ7PoquFJr13HL52kBOA+TJNtRypkcNeQWYWUenlrwCjWdWV1yIq9+8jZu/pMM1qBPctUUouX7V5OdlXsleFHFmtrjoKlx8Wzd5HxefIJQUmR4yPTkMTJbbAHmi5nD0vALMLDmWxjLr4tMaQSNeRathL9QMNSi+hldeeQXl5eUmPS/zSnIkWTPr4xcA3fWmz+Doii/B2y/AThVZF+etI0fi6HkFmFlyLE1lVhAEeIbdi9ZPLISrmzsWL16MqKgoJCcn27lKyzGvVJdkzezYMWOgzT7Y5H20WQcwbuwYO1VkPY0dMerxyJGUxpHzCjCz5HhMyWzl2VRMnvIsvvnmG5SXlyM+Ph7Tpk1DcXGxnaq0DPNK9UnWzM6dPRParP3Q5uU0eLs2Lwfa7AOYM2uGnStrPjkNkCeyBkfOK8DMkuMxJ7ODBw/GqVOnMGfOHGzcuBFhYWHYt2+fnSs2HfNK9blI9YNDQ0Oxa8c2jBw9FpXhg+DeYxBcfIKgK74EbdYBaLMPYNeObWZP8yMHaUdSkZJWitUpTd8vruKQfQoiaiZHzivAzJLjMTezXl5eWLVqFUaNGoUJEybgkUcewciRI7F27VrccccdEv82xphXuoUpA7n1W3R0tGhtZ8+eFafPmCX6BgSJTk7Oom9AkDh9xizx7NmzVv9ZRNYGIF00I0P23JhXImNqy6soWpZZrVYrLl68WHRzcxP9/f3F999/X6yurrZJfUSNMSevkq4ARqR0aprqh0jpmFfznDlzBpMmTUJycjIGDhyIjRs3onPnzlKXRSqhiKm5iIiISL66deuGH374AW+//TaOHDmCHj16YOXKldDpdFKXRmSEzSwRERE1yMnJCVOnTsXp06cxcOBAPP/88+jfvz9OnDghdWlEBmxmiSxUUVEhdQlERHYREhKCL774Ap988gnOnTuHmJgYLFiwwOTFFohsic0skYmKi4uxf/9+vPLKK7j//vvh5+cndUlERHYjCAL+9re/IScnB+PGjcOSJUsQERGBH374QerSSOXYzBI1oqCgALt378asWbMQHR0Nf39/DBkyBEuWLEFJSQkmT54sdYlERHYXEBCA999/HwcOHEBlZSXuu+8+TJkyBUVFRVKXRiol2TyzRHIiiiJ+/vlnJCUlITk5GUlJScjNzQUAtGjRAn379sWCBQsQHx+Pfv36wdvbGwCwZs0aKcsmIpLMwIEDcerUKSxcuBCrVq3Cvn378Pbbb+PRRx+VujRSGTazpEo6nQ7Hjx83NK/JyckoLKxZxzwwMBAajQZTp06FRqNBVFQU3NzcJK6YiEh+PD09sWLFCsNiC4899hhGjBiBdevWoU2bNlKXRyrBZpZUoaysDEeOHDE0r6mpqSgrKwMAdOrUCUOGDEF8fDw0Gg26desGQRAkrpiISDmio6ORlpaGlStXYuHChTh48CDeeOMNPPPMM/w8JZtjM0sO6dKlS0hJSTE0r8eOHYNOp4MgCOjVqxeefvppQ/Parl07qcslIlI8V1dXvPzyyxg+fDgmTZqEiRMnYvv27di4cSPuuusuqcsjB8ZmlhRPFEX8+uuvhrGuycnJOHPmDADA3d0dffr0wQsvvID4+Hj0799fNbMQFBUVobCwEK1bt5a6FCJSkS5duuB///sfNm/ejBdeeAE9e/bEa6+9hjlz5sDFhW0HWR+XsyXFqaqqwqlTp4ya1wsXLgAA/Pz8EBcXZzjrGhMTA3d3d5vVIuflMQVBEIGaHYtGo4FGo0FcXBzuvvtufu1HqiTnvDrq/vXChQuYPn06Pv/8c0RFRWHLli2IioqSuixSAHPyykMkkr2bN28iLS3N0LweOnQIxcXFAGom8r733nsNzWt4eDicnDjjHAB07doVzzzzDJKTk/H555/jvffeAwAEBQUZNbe8wI2IbKVt27b47LPP8Nlnn2H69OmIjY3FvHnz8Oqrr6Jly5ZSl0cOgmdmSXauXr2KQ4cOGc66pqenG1bbCg8Ph0ajMTSvd955p6S1KuVMT3V1NX788UfDzA3Jycn45ZdfAPw59Zi+we3Xrx98fX2lLJ3IJpSSV0d17do1vPDCC9iyZQtCQ0OxadMm/OUvf5G6LJIpc/LKZpYkd+7cOaMhA1lZWQBqLiaIiYkxNK8DBgxAYGCgxNUaU/LOMT8/HykpKYbm9vjx46iqqjJcJKdvbjUaDUJCQuxYOZFtKDmvjuS7777D5MmTkZubiwkTJmDFihXw9/eXuiySGTazJFvV1dU4ffq0UfN67tw5AIC3tzcGDBhgaF5jY2Nl/zWUI+0cS0tLDdOXpaSk4PDhwygtLQUAdOjQwai55XAOUiJHyqvS3bhxA//617+wcuVKBAUFYf369Xj88celLotkhM0syYZWq0VGRoaheU1JScG1a9cAAG3atDEMF9BoNOjVq5firnR15J2jTqfDyZMnjf7t8vPzAQC+vr6GAw+NRoPY2Fi0aNHCWqUT2YQj51Wpjh07hokTJyIzMxOPPfYY1q9fj7Zt20pdFskALwAjyRQXF+PQoUOGBujo0aMoLy8HUHNV/WOPPYb4+HjEx8ejc+fOvKpexlxcXNC7d2/07t0bM2fOhCiK+O2334zG3SYmJgKoGRISHR1tdGFZq1atJP4NiEjuevfujaNHj2LVqlV49dVX0b17d6xYsQITJ07ktz9kMp6ZpWa5cOGCobFJSkrCyZMnUV1dDWdnZ0RFRRmdeXXE+U7VfqbnypUrSE1NNbwH0tLSDBfrdevWDXFxcYZ//9DQUB68kKTUnle5O3v2LCZPnoz//e9/uPfee7Fp0yZ06dJF6rJIIhxmQDYhiqLhinj9eFf9FfEtW7ZE//79DeNd+/btCy8vL4krtj3uHI2Vl5cjPT0dycnJSElJMRpWcscddxg1t5GRkXB1dbVrfaRuzKv8iaKI9957D/PmzUN5eTkWLlyIefPm8bNChdjMklVUVlYiMzPTqHm9fPkyAOO5SjUaDaKiolT5YcOdY9Oqq6uRk5NjmDUhKSkJv/32G4CaA6B+/foZGtx+/frBx8dH0nrJsTGvypGfn48ZM2bg008/RUREBLZs2YLo6GipyyI74phZskhpaSkOHz5saDoOHz6MGzduAAA6d+6MoUOHGsa7dunShV8Z0205OTkhPDwc4eHhmDx5MgAgLy/PcNY2OTkZr7/+Oqqrq+Hk5ISIiAijgyReCEKkTsHBwdi9ezf27NmD6dOno0+fPpg7dy7+9a9/yX6WG7I/nplVscLCQqPxrpmZmYZ5RiMiIozGu7KpaBjP9DRfSUkJDh8+bGhuU1NTDQdRnTp1MlxQptFo0L17d14UQhZjXpWpqKgIL730EjZt2oTOnTtj48aNGDhwoNRlkY1xmAHdQhRF5ObmGg0Z+OmnnwAA7u7u6Nu3r6F57d+/P1eAMhF3jtZXWVmJEydOGMbdJicno6CgAADg7++PuLg4Q3MbExMDDw8PiSsmpWBele2HH37ApEmT8PPPP+Pvf/873njjDQQEBEhdFtkIm1lCVVWVoSHQN7D1GwL9xVrR0dFwd3eXuGJl4s7R9kRRxC+//GJobpOSknDmzBkAgJubG2JjYw3vZzmuEkfywbwq382bN7Fo0SIsX74cgYGBWLduHZ544gkOe3NAbGZV6ObNmzh69CiSkpKQlJSE1NRUlJSUAPhz9Sb9eFd+VWs93DlK4/Lly4b5jJOTk5Geno7KykoAQFhYmNHQhE6dOnFHRwCYV0dy4sQJTJgwARkZGRg2bBjefvttLrvtYNjMqsCVK1eMrhDPyMgw7Mx79OhhNN61Q4cOElfruLhzlIebN28iLS3NaEqw69evA6i5kKRucxsREaG4lebIOphXx6LT6bBmzRq88sorcHFxwb///W9MmTKFJ2scBJtZByOKIs6dO2cY65qUlITTp08DqFl5KTY21tC8DhgwgGOI7Ig7R3mqrq5Gdna2YRnelJQU/P777wAAT09Pw5zIcXFx6NevnyrmRCbm1VH98ssvmDJlCg4ePAiNRoN3330X3bp1k7osaiY2swpXd0esb17Pnz8PAPDx8cGAAQMMwwZiY2PRokULiStWL+4cleOPP/4wfJuRnJyMkydPQhRFODs7IzIy0mgp3uDgYKnLJRtgXh2XKIrYunUr5s6di7KyMvzzn//ECy+8ADc3N6lLIwuxmVUYrVaL9PR0Q/OakpKCoqIiADVfkerHumo0GvTs2RPOzs4SV0x63Dkq1/Xr1w3zKqekpODw4cO4efMmgJp5lesOTejWrRu/unQAzKvjKygowKxZs7Br1y707NkTmzdvRp8+faQuiyzAZlbmioqKDBevJCUlIS0tDVqtFkDNevb6xjU+Ph4dO3bkxSsyxp2j46ioqMDx48cNZ25TUlJQWFgIAAgICDA0tnFxcYiJieEMIArEvKrH3r17MXXqVENzu2jRInh6ekpdFpmBzazM5OXlGQ0ZOHXqFERRhIuLC3r37m1oXuPi4hAUFCR1uWQG7hwdlyiKOHv2rGHcbf25mWNjYw1DEwYMGAB/f3+JK6bbYV7V5fr16/jHP/6BDRs2oGPHjti4cSMGDx4sdVlkIjazEhJFEWfOnDFqXvVr0de98CQ+Ph59+/blkaLCceeoLoWFhUZTgmVkZECn0wEAwsPDjZbivfPOO/mtiswwr+qUlJSESZMm4ccff8T48ePx5ptvcj5qBWAza0cVFRXIzMw0NK/Jycm4cuUKAKB169aGxlWj0SAyMpJTAjkY7hzV7caNG4YpwZKTk3Ho0CEUFxcDANq2bWvU3Pbq1Yvj3SXGvKpXeXk5Xn/9dSxbtgz+/v5Ys2YNRo0axQNOGWMza0P6deT1zWvdi0buuusuo+b17rvvZlAcHHeOVFdVVRWysrKMZk34448/AADe3t7o16+fobnlNzP2x7zSqVOnMHHiRBw9ehQPPfQQ3n77bc7FLlNsZq2ooKDAsFNKTk7G8ePHUVVVBScnJ8N0PvHx8ZzOR6W4c6TbOXfunOGCsuTkZMOYeWdnZ0RFRRlNCdamTRupy3VozCsBNQed69atw4IFC+Dk5ISlS5di2rRpnLFEZtjMWqjuBR/68a5nz54FALRo0QJ9+/Y1NK/9+/eHt7e3xBWT1LhzJHMVFRUZpgRLSkrC0aNHUV5eDgAIDQ01GprQtWtXfrtjRcwr1fXbb79hypQp2L9/P/r374/NmzcjLCxM6rKoFptZE+l0Opw4ccJovOvFixcB1EzFU3fIQO/evTn5Mt2CO0dqroqKChw7dsxoaMLly5cBAIGBgYYpwTQaDaKjo/k51AzMK9UniiI+/vhjzJ49G6WlpViwYAFefvll5kwG2Mw24saNGzhy5IiheU1NTUVpaSkAoGPHjkbNKydJJ1Nw50jWJooifvrpJ6Pm9ueffwYAeHh4oE+fPoYGd8CAAfDz85O4YuVgXqkxhYWFmD17Nnbs2IHw8HBs3rwZ/fr1k7osVWMzW+vy5ctISUkxNK/6aXQEQUDPnj37j2HuAAAfgElEQVSNmteQkBCpyyUF4s6R7OHixYtISUkxNLjHjh0zfJbVnxKsQ4cOHJrQCOaVbufLL7/E1KlTkZeXhxkzZuD111+Hl5eX1GWpkiqbWVEU8dtvvxnGoSUnJyMnJwcA4Obmhj59+hiNd+UE52QN3DmSFMrKynD06FHDwXpqaipKSkoAACEhIUZDE7gE9p+YVzJFSUkJ5s+fj7feegvt27fHO++8g4SEBKnLUh1z8qrYSU/1U+DUbV7z8vIAAL6+voiLi8P48eMRHx+PmJgYeHh4SFwxEZF1eHp64v7778f9998PoObz8NSpU4ZZE5KSkrBz504ANVOCDRgwwNDg9u3bFy1btpSyfCJZ8/b2xrp16zB69GhMnDgRQ4cOxdixY/Hmm29ylU6ZUsyZ2fLycqSlpRka10OHDuH69esAgHbt2iE+Pt4wZCA8PJxnIsgueKaH5EgURZw7d85o3G1WVpbRMtr65jYuLg533HGH1CXbBfNK5tJqtVi6dCmWLFkCHx8frF69GmPHjuVQHjtwiGEG165dMywbmZSUhLS0NFRUVAAAwsLCjMa7ctlIkgp3jqQU165dQ2pqqqHBPXLkCLRaLQDg7rvvNhqa0KVLF4f8TGVeyVLZ2dmYOHEiDh8+jAcffBDvvPMO7rzzTqnLcmhm5VUURZO36Oho0VbOnTsnbt++XZw6darYs2dPURAEEYDo4uIi9uvXT3z++efFL774Qrx06ZLZz3327Flx2nMzRd+AVqLg5CT6BrQSpz03Uzx79qwNfhNSEwDpohkZsudmy7zaEvNqH+Xl5eKhQ4fE5cuXi4888ogYGBgoAhABiK1atRIfffRRccWKFWJqaqqo1WqlLtcqmFfbUEtmdTqduHbtWtHT01P09PQU16xZI+p0OqnLcljm5FWSM7PV1dXIyckxGu/6+++/AwC8vLwwYMAAw5nXPn36NGt8V2JiIkaOHgv3HoPhHj4QLr6tobteCG32QWiz9mPXjm0OO7A7Pz8ffx83Ch9s28mVhWyEZ3qsS815BaTNrCiK+PHHH41WK9MvGuPh4WFYNCYuLg79+/dX5JRgzKv1qTGz586dw7PPPovExET4+njj8y/24r777pO6LIcju2EGFRUVyMjIMDSvKSkpuHr1KgDgjjvuMAwXiI+PR69eveDiYp3r0nJzcxEZHQuvYfPh3q77Lbdr83JQum8JjmekITQ01Co/U07mzJiGrVs24emJU7Bq7VtSl+OQuHO0HrXnFZBfZgsKCgyNbUpKCo4dO4aqqiqj6Q31wxOUsL4982pdas6sKIoYOmQQvjnwLQQnJyxYsAALFiyAu7u71KU5DMmb2eLiYqSmphqa1yNHjhiWa7z77ruNmtfQ0FCbjc2aPmMWdmZehJdmfKP3KU36EKOig7F+7Wqb1CCV/Px8hHcNxbejnTDwk2pk//gLz87aAHeO1qPmvALKyGxZWRmOHDliaG4PHTpkWHimffv2hjG3cXFx6NGjh+wuxGVerUvNmdXndfejAhI+0aKisgrdunXD5s2bERcXJ3V5DsHuzWxBQYGhcU1KSsKJEydQXV0NJycnREVFGV2sZc+rZv0Cg+A5Yilc/YMbvU/ltXyU7Z6PoiuFdqvLHubMmAZkfoQ3BzphzsFqCL2flMWZHkfDnaP1qDmvgDIzq9PpDFOC6bcLFy4AAHx8fAxDxjQaDWJjYyWfEox5tS41Z7Z+Xn8LuBfHTpzCH3/8gWnTphlmPyDL2bSZTUtLw88//2wY65qUlITc3FwAQIsWLdCvXz9D49qvXz94e3tb9ltYgZOzM9rP2wPBqfGzA2KVDudXPY6qKp0dK7Mt/RFj9iRnBHs7Ib+kGj02V8nyTI/ScedoPWrNK+A4mRVFEb///ruhsU1JSUFWVhYAwMXFBdHR0UZnb+09Zyfzal1qzWxjeT167BTWrl2LdevWoV27dtiwYQMefvhhqctVLJstmpCbm4s2bdqgsLDmCKtVq1bQaDSYOnUq4uPjERUVBVdXVwtKtg0fvwDorhc2edSoK74Eb78AO1Zle8uXLMJTvWpCBgDB3k54smfN38v9TA+pl1rzCjhOZgVBQMeOHdGxY0eMGzcOAHD16lXDsLPk5GSsX78eK1euBAB06dLFqLm9++67HXJKMEel1sw2lte31qzCmrVvGRZbGDZsGEaNGoU1a9agdevWElft2Mw6M+vu7i6OGjXKMGyga9eusv7gUeN4nvpHjIa/V+iZHrnjmR7rUWNeAfVlVqvVIiMjw3AxcN0LgoOCgoya26ioKLi5uVntZzOv1qXGzJqa14qKCixbtgyLFy+Gt7c3Vq1ahSeffFLWPZPcSH4BmFyo8UrLuuN4brlNIePwlIQ7R+tRY14BZra6utowJZi+wf3ll18A1Axd008Jph+65uvra/HPYl6tS42ZNTevp0+fxqRJk3Do0CEMGjQIGzduRKdOnexZsmKxma3DMAde+CC49xgEF58g6IovQZt1ANrsAw41B15jR4yG2x30TI+UuHO0LjXlFWBmG5Ofn2+0FG9mZiaqq6shCAJ69eplaG41Gg1CQkJMfl7m1frUlFlL81pdXY133nkHL730Eqqrq7F48WLMnDlTdrN9yA2b2Xpyc3Px5pp1+HjbdpQUXYW3XwDGjR2DObNmOMzRItD0EaPhPio402NP3Dlan1ryCjCzpiopKcGRI0cMDW5qairKysoAAB06dDBqbsPDw+Hk1PDrybzahloy29y86mc6+PLLLxEbG4vNmzejV69etixZ0djMqpSmTxRS0o7f9n5xsZFIPppph4ocH3eO1BzMrGV0Oh1OnDhhdPY2Pz8fAODr63vLlGAtWrQAwLxS81gjr6IoYteuXZgxYwauXbuGl156Cf/3f/8HDw8Pa5ereGxmieyEO0ci6YmiiF9//dWouT19+jQAwNXVFTExMdBoNFixYgXzSrJw5coVzJs3D1u3bkXXrl3x7rvvIj4+XuqyZMWc/Wvj58qJiIgUQBAEdO7cGePHj8fGjRuRnZ2Ny5cvY+/evZg7dy6cnJywZs0aqcskMggMDMQHH3yAb775BlqtFvfccw+mTp2K4uJiqUtTJDazRETkcAIDAzFs2DAsW7YMycnJuH79utQlEd1i8ODByMrKwpw5c7Bp0yaEhYVh7969UpelOGxmiYjI4XFMIsmVp6cnVq1ahdTUVAQEBOCvf/0rRo4ciYKCAqlLUww2s0REREQS69OnDzIyMvD6669j79696N69O9577z2Yc22TWrGZtbHc3FxMnzELfoFBcHJ2hl9gEKbPmIXc3FypSyOiephXIuVwxLy6urpi/vz5OHHiBHr27IkJEyZg4MCBiv6d7IHNrA0lJiYiMjoWOzMvwnPEUrSftweeI5ZiZ+ZFREbHIjExUeoSiagW80qkHI6e165du+L777/Hhg0bkJ6ejp49e+KNN96ATqeTujRZ4tRcNqLGZf7UiFNzOQbmVR2YV8egtrzm5eVh2rRp2Lt3L6Kjo7F582ZERkZKXZbNcWouGVi1ei3cewxuMGgA4N6uO9zDB+HNNevsXBkR1ce8EimH2vLarl07fP755/jPf/6D8+fPIyYmBv/4xz9w8+ZNqUuTDTazNrJt+3a4hw9s8j7uPQbh423b7VQRETWGeSVSDjXmVRAEjBgxAqdPn8aTTz6JZcuWISIiAj/88IPUpckCm1kbKS66Chff1k3ex8UnCCVFV+1UERE1hnklUg415zUgIADvvfceDh48iKqqKtx3332YMmUKioqKpC5NUmxmbcTHLwC664VN3kdXfAnefgF2qoiIGsO8EikH8wo88MADOHXqFJ5//nls3rwZYWFh2LNnj9RlSYbNrI2MHTMG2uyDTd5Hm3UA48aOsVNFRNQY5pVIOZjXGi1btsSKFStw9OhRtG7dGsOHD8eIESOQn58vdWl2x2bWRubOnglt1n5o83IavF2blwNt9gHMmTXDzpURUX3MK5FyMK/GoqOjkZaWhqVLl+LLL79EWFgYtmzZoqrFFhTTzCptcuTQ0FDs2rENpfuWoDTpQ1Rey4dYpUPltXyUJn2I0n1LsGvHNoeYNoSoPuaVSDmYV+VzdXXFyy+/jFOnTiEiIgITJ07EAw88gLNnz0pdmn2IomjyFh0dLUrhq6++Er18/cXAuL+JbSe/K3Z44Qux7eR3xcC4v4levv7iV199JUldpjh79qw4fcYs0TcgSHRychZ9A4LE6TNmiWfPnpW6NLICAOmiGRmy58a8mo95dWzM662YV8dTVVUlbtq0SfT19RU9PDzEZcuWiRUVFVKXZTZz8ir7RRPUNjkyKQsnYTfGvJKcMa/GmFfHduHCBTz33HPYs2cPIiMjsWXLFvTu3VvqskzmUIsmNGdyZKV9dUKkdM2dzJyZJbIf5tWxtW3bFp999hk+/fRTFBQUoE+fPnjxxRdx48YNqUuzOtk3s5ZOjpyYmIhekb3x3p79KLlZAVEESm5W4L09+9Ersrfi120mkqPmTGbOzBLZF/OqDsOHD0dOTg6eeeYZrFixAr169cJ3330ndVlWJftm1pLJkXNzczF8xEiU66rh1r4n2oxfiQ7P70Gb8Svh1r4nynXVGD5iJI8eiazM0snMmVki+2Ne1cPPzw+bNm3Cd999B0EQ8MADD2DChAm4du2a1KVZheybWUsmR371X69BW1WN1iNehf+9T8HVPxiCkzNc/YPhf+9TaD3iVWirqrHwtUW2Lp9IVSydzJyZJbI/5lV97r//fpw8eRIvvfQStm7diu7du2P37t2Kn8ZL9s2sJZMj/+fTz+AdNbTJcUDekQnYtftTq9ZKpHaWTmbOzBLZH/OqTi1atMCyZcuQlpaGdu3a4YknnsDw4cORl5cndWkWk30za8nkyJUVFfDqNaTJ5/WKeBCVFRVWrZVI7SydzJyZJbI/5lXdoqKicOTIEaxYsQLffPMNwsLCsHHjRlRXV0tdmtlk38xaMjmyqKs0aRyQWFVp6/LJSnjVrDJYOpk5M+tYmFdlYF7JxcUFzz//PL788kt4+/jg2WefhbOzM7z9/BWVWVk1s419AHbp0gXHM9IwKjoYZbvn4/yqx1G2ez5GRQfjeEYaEhISjJ7HraWnSeOA3Ft42vLXIStJTExEZHQsdmZehOeIpWg/bw88RyzFzsyLiIyO5VWzErFWXgFm1pEwr/LVUGa//OprfPHZbuZVxRITE/HX4SNws8MA+N3zFAR3T5SWluL9vf9DRO8YRWRWNosmJCYmYuTosTVz3oUPhItva+iuF0KbfRDarP3YtWNbg6FqyLinnsa+M8Xwv39Co/e59t0WPBLmi48+eN9av0Kz5ObmYtXqtdi2fTuKi67Cxy8AY8eMwdzZM1U9WbXcJ/VW6yTs1swrwMw6CubVcrZeNIH7WOa1IQ1ltqr0Gq4e3IgbPybDxS8YrpWlOHUi0+6vkzl5lUUza+0PwNzcXPSI7A2/R19p9PmKPl+ErOPHZPEmtnZj4Eimz5iFnZkX4aUZ3+h9SpM+xKjoYKxfu9qOldVQ487RFg0LM+sYmFfL2bKZ5T6WeW1MU5m98fNhXN3/NqpKryEiMhIpyUnw9LTf2XbFNbO2+ABMTEzEiL+NgVvYA2gZ8SBcfIKgK76EGye+RsXpb7F753ZZvHnlfiZDan6BQfAcsRSu/sGN3qfyWj7Kds9H0ZWmv/ayBTXuHG3VsDCzyse8Ws6WzSz3scxrY26X2WptGa588xZu5Pw/dOrUCRs3bsSgQYPsUpvilrNtziokjUlISMDJzHSM7RNiNA5obJ8QnMxMl0XIgOYvJ+joLJ3Um2zHFnkFmFlHwLzKE/exzGtjbpdZJ3dPtHpoLgTBCa6urhg8eDCefvppXL0qrwzLopm11QdgaGgo1q9djaIrhaiq0qHoSiHWr10tq6MvWzUGjsLSSb3JdmzZsDCzysa8yhP3scxrY0zNrI9/IE6cOIH58+dj27Zt6N69O3bu3CmbxRZk0cyq+QOQZzKaZumk3mQ7as4rwMw2hXmVJzVnlnltmjmZ9fDwwOuvv4709HS0b98eo0aNwl//+lecP3/eTtU2ThbNrJo/ANX8IWMKSyf1JttRc14BZrYpzKs8qTmzzGvTLMlsREQEDh8+jJUrV+LgwYMICwvDhg0bJF1sQRbNrJo/ANX8IWMKSyf1JttRc14BZrYpzKs8qTmzzGvTLM2si4sL5s6di6ysLPTt2xfTpk3DPffcgzNnzkjye8iimTXlxVyz6g2sWr3W4VaUsfRDRk0r7CQkJJg9CT/ZjprzCliWWeaVeZWSmjPLfeztNSeznTt3xv79+/HBBx/g9OnTiIiIwOLFi1Fh56WMZTE1l15ubi7eXLMOH2/bjpKiq/D2C8C4sWPQO7IXZs193mHniDPMgRc+CO49BhmmONFmHYA2+8Atvx/nzJMPtU71A6g3r4B5mWVe5UPNeQXUm1nuY+3j4sWLmDVrFnbu3IkePXpg8+bN6Nu3r8XPp7h5ZpuiljniGvuQmTNrhtHvpZbXQynUvnOsT03vT1Myq6bXQwmY11up5T3Kfaz97Nu3D9OmTUNeXh5mzpyJxYsXw8vLy+zncahmVu4rytgbXw954c7RGN+fxvh6yAvzeiu+R43x9bCO4uJizJ8/H2+99RbuvPNObNy4EUOGDDHrORS3aEJTOEdcDf34nQ0bN/L1INliXmswr6QUzGwNZta6fHx8sH79eiQnJ6NFixZ48MEH8eSTT+Ly5cs2+Xmyb2Y5R1zN+J3I6FjszLwIUVeh+teD5It5ZV5JWZhZZtaW4uLikJmZiVdeeQU7duxA9+7dsX37dqsvtiD7Zlbtc8Tl5uZi5Oix8Bo2H16a8XBq4avq14PkjXllXklZmFlm1tY8PDzw2muv4dixY+jcuTPGjh2Lhx9+GOfOnbPaz5B9M6v2OeLqryvtGXYvSk/ub/Ixjvx6kLwxr8wrKQszy8zaS8+ePXHo0CGsXr0a33//PcLCwrBu3TpUVVU1+7ll38yqebJn4NbxTN69H0bpiW9U+3qQvDGvzCspCzPLzNqTs7MzZs2ahezsbMTFxWHmzJnQaDTIzs5u1vPKvplV+4oy9cczufoHo9VDc1H46SJc++ED1b0eJG/MK/NKysLMMrNS6NixI77++mt8+OGH+OmnnxAVFYWFCxdCq9Va9Hyyn5pLz9Q54hyNX2AQPEcshat/sNHfV17LR8mxL1GW8wOqbxRDcHHFtGefdfjXQ2441U/DmFfmVY6Y18Yxs8ysVAoLCzFnzhxs374dYWFh2Lx5M/r37+9Y88yqHee8kzfuHKku5lXemFeqj5mVj6+++grPPvsszp8/j+nTp2P9+vWOM8+s2ql9PBORkjCvRMrCzMrH0KFDkZ2djeeeew5vvfWWWY9lMytzah/PRKQkzCuRsjCz8uLt7Y21a9ciJSXFrMexmVWAhIQEHM9Iw6joYJTtno/zqx5H2e75GBUdjOMZaUhISJC6RCKqxbwSKQszKz/9+/c36/4cM0vUDByDR6QczCuRcpiTV56ZJSIiIiLFYjNLRERERIrFZpaIiIiIFIvNLBEREREpFptZIiIiIlIsNrNEREREpFhsZomIiIhIsdjMEhEREZFisZklIiIiIsViM0tEREREisVmloiIiIgUi80sERERESkWm1kiIiIiUiw2s0RERESkWGxmiYiIiEix2MwSERERkWK5SF0AqVtlZSXOnz+P8vJyqUtpkoeHB0JCQuDq6ip1KURERFQHm1mS1Pnz5+Ht7Y2OHTtCEASpy2mQKIq4cuUKzp8/j06dOkldDhEREdXBYQYkqfLycgQGBsq2kQUAQRAQGBgo+7PHREREasRmliQn50ZWTwk1EhERqRGbWbK63NxcTJ8xC36BQXBydoZfYBCmz5iF3NxcWT4vkZoxV0TKwszeis2shBzxDZmYmIjI6FjszLwIzxFL0X7eHniOWIqdmRcRGR2LxMREWT2v3tdff42uXbvirrvuwrJly5r1XOSYmFci5XDEvALMbGMEURRNvnNMTIyYnp5uw3LUIzExESNHj4V7j8FwDx8IF9/W0F0vhDb7ILRZ+7FrxzYkJCRIXaZZcnNzERkdC69h8+Hervstt2vzclC6bwmOZ6QhNDQUAJCTk4Pu3W+9b3Of1xxVVVXo0qULDhw4gJCQEMTGxmLHjh0ICwszul9DtQqCkCGKYozZP9QOmFfrYV7Nz5UcMa/q4Ih5BdSXWXPyyjOzNtbQ0eG4p57GiJGj4DVsPrw04+HqHwzByRmu/sHw0oyH17D5GDl6rOKOIFetXlvz4dFAyADAvV13uIcPwptr1sniefWOHj2Ku+66C507d4abmxtGjRqFL774wqLnImVjXv/U3FwR2Zqa8gows01hM2tDjX0d8N+fSnGzUofq8rIGH6fUN+S27dvhHj6wyfu49xiEj7dtl8Xz6uXl5aF9+/aGP4eEhCAvL8+i5yLlYl5v1ZxcEdmS2vIKMLNNYTNrI7m5uRg5emyDR4e+9/4ddzzxL1z+7ypUXstv8PFKfEMWF12Fi2/rJu/j4hOEkqKrsnhevYaG2nD2AnVhXhvWnFwR2Yoa8wows01hM2sjpnwd4BUxGCXHvmzwdiW+IX38AqC7XtjkfXTFl+DtFyCL59ULCQnBH3/8Yfjz+fPn0bZtW4uei5SJeW1Yc3JFZCtqzCvAzDaFzayNmPJ1gFevISjL+aHB25T4hnz4oaG4+t+V+GPdOPy+/BH8sW4crn77rtHRsTbrAMaNHWPW844dMwba7INN3seS59WLjY3Fzz//jF9//RUVFRX45JNP8Mgjj1j0XKRMzKv18kpka2rMa25uLtq374CCrbMbzSug3sxyOVsbKS66Cl8Tvg6ovlHc4G1Ke0MmJiZiz+d74db9fgQ8NM9w9Wjpyf0o+GgeWj00F04entBmH8CcD9PMeu65s2fiw+hYuHaKafQKTkueV8/FxQXr16/HkCFDUFVVhWeeeQbh4eEWPRcpE/NqvbwS2Zoa8zpy9Fi4hQ9Cm6emNpjXFqExzd4XKhmbWRvRfx3g6h/c6H10xZfg1NLnlr9X2htSP37J568LjJpNV/9g+N/7FFre1QcX//MqWri6YPeuT8yeMiQ0NBS7dmzDyNFjURk+CO49BsHFJwi64kvQZh2ANvsAdu3Y1qypSIYOHYqhQ4da/HhSNubVenklsjU15rX+dFx181q4+zX4hMVDl5va7H2hUnGYgY2Y8tV4aeZXcPNrg8pr+RCrdKi8lo/SpA9Rum+Jot6Qpoxf8o1MwPDHh1s8t19CQgKOZ6RhVHQwynbPx/lVj6Ns93yMig7G8Yw0Rc4ZSPLBvP7JGnklsiXm9U/u7brDq+dAtK8uUPW+kM2sjcydPRParP3Q5uU0eLs2Lwe6M//DiAf6Kr45M2X8UsuIB7Fv33+b9XNCQ0Oxfu1qFF0pRFWVDkVXCrF+7WrFfCiRfDGvxqyRVyJbYV6NeUUNxblzf6h6X8hhBjZiylfju3duV1SoGmPq+CUlXj1K6sC8GmNeSc6YV2PMK8/M2pRavhrndCHkCJjXPzGvJHfM65+YVzazABpeEm/6jFlWWe5ODV+N23rqLKK6mNfmYV7JnpjX5mFeTaP6ZraxJfF2Zl5EZHQsEhMTpS5R9kwZv6TNPoA5s2ZY5efl5+fjwQfuRUFBgVWej5SDeW0+e+eV1It5bT7m1TSqbmabWhLPSzMeXsPmY+TosVY5gnRk+vFLpfuWoDTpQ5tfPbp8ySIcTU3B8iWLrPJ8zzzzDFq3bo0ePXpY5fnINphX67B3XkmdmFfrYF5No+pm1pQpL9zDB+HNNevsXJny2Gv8Un5+PrZu/QDfjvfA1q3vW+Xs7NNPP42vv/7aCtWRLTGv1qOW8YYkHebVepjX2xNEUTT5zjExMWJ6eroNy7Evv8AgeI5Y2uTEy5XX8lG2ez6KrjQ9AJssk5OTg+7dG/6wa8icGdOAzI/w5kAnzDlYDaH3k1i19q1m1/Hbb7/h4YcfRlZWllm1CoKQIYpiTLMLsAHmlcgY82o/zCs1lzl5VfWZ2eKiq3DhlBeKoT8r+2Lfmj+/2BdWOztL8se8EikH80r2pOpmllNeKMvyJYvwVC9nBHvXvG2DvZ3wZE9nq42dJXljXomUg3kle1J1M8spL5Sj/llZPZ6dVQ/mlUg5mFeyJ1U3s5zyQjnqn5XV49lZ9WBeiZSDeSV7UnUzyykvlKGxs7J6zT07O3r0aPTv3x8//vgjQkJCsGXLlmZUS7bCvBIpB/NK9uQidQFS00958eaadfh423yUFF2Ft18Axo0dgzkfpjFoMtDYWVm9mrOzNfezZGaDHTt2NLdEshPmlUg5mFeyF1VPzUXSM2VqLk2fKKSkHb/tc8XFRiL5aKa1SrsFp+YiUjbmlUg5zMmr6s/MkvzZskElIiIiZVP1mFmSB3O+HZCKEmokIiJSIzazJCkPDw9cuXJF1s2iKIq4cuUKPDw8pC6FiIiI6uEwA5JUSEgIzp8/j0uXLkldSpM8PDwQEhIidRlERERUD5tZkpSrqys6deokdRlERESkUBxmQERERESKxWaWiIiIiBSLzSwRERERKZZZiyYIgnAJwO+2K4dIce4URTFI6iIawrwS3YJ5JVIOk/NqVjNLRERERCQnHGZARERERIrFZpaIiIiIFIvNLBEREREpFptZIiIiIlIsNrNEREREpFhsZomIiIhIsdjMEhEREZFisZklIiIiIsViM0tEREREivX/AW/U2JO4IjOEAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 864x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mglearn\n",
    "\n",
    "mglearn.plots.plot_linear_svc_regularization()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "259bb53d",
   "metadata": {},
   "source": [
    "上图可以看出，c参数小时，对应强正则化，反之则更倾向于分类正确。\n",
    "\n",
    "对于本数据集，不可能用一条直线将所有点都分类正确。但与回归的情况相似，用于分类的线性模型在低维空间中看起来非常受限，决策边界只能是直线或平面。但在高维空间中，与回归模型一样，用于分类的模型变得非常强大，当考虑更多特征时，避免过拟合十分重要。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21d2adce",
   "metadata": {},
   "source": [
    "下面在乳腺癌数据集上详细分析LogisticRegression模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "1c8c8b1a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set score: 0.955\n",
      "Test set score: 0.958\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import load_breast_cancer\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "cancer = load_breast_cancer()\n",
    "X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, stratify=cancer.target, random_state=42)\n",
    "logreg = LogisticRegression().fit(X_train, y_train)\n",
    "print(\"Training set score: {:.3f}\".format(logreg.score(X_train, y_train)))\n",
    "print(\"Test set score: {:.3f}\".format(logreg.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dc833800",
   "metadata": {},
   "source": [
    "虽然说默认的c给出的模型的性能非常好，都达到了95%的正确率，但由于模型在训练集和测试集上的性能非常接近，所以可能会有欠拟合的现象发生，接下来试着调大c的参数："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a6de50c9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set score: 0.972\n",
      "Test set score: 0.965\n"
     ]
    }
   ],
   "source": [
    "logreg100 = LogisticRegression(C=100).fit(X_train, y_train)\n",
    "print(\"Training set score: {:.3f}\".format(logreg100.score(X_train, y_train)))\n",
    "print(\"Test set score: {:.3f}\".format(logreg100.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f48f9c98",
   "metadata": {},
   "source": [
    "也可以看看正则化强时，模型的性能"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "628b523c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set score: 0.934\n",
      "Test set score: 0.930\n"
     ]
    }
   ],
   "source": [
    "logreg001 = LogisticRegression(C=0.01).fit(X_train, y_train)\n",
    "print(\"Training set score: {:.3f}\".format(logreg001.score(X_train, y_train)))\n",
    "print(\"Test set score: {:.3f}\".format(logreg001.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6394277e",
   "metadata": {},
   "source": [
    "最后看一下不同C参数模型学到的系数$w$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "11bd8ceb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.90876683e+00  9.98788148e-02 -7.65567571e-02  1.30875965e-03\n",
      "  -1.36948317e-01 -3.86693503e-01 -5.71948682e-01 -2.83323656e-01\n",
      "  -2.23813863e-01 -3.50526844e-02  3.04455316e-03  1.25223693e+00\n",
      "   9.49523571e-02 -9.63789785e-02 -1.32044174e-02 -2.43125981e-02\n",
      "  -5.86034313e-02 -3.35199227e-02 -4.10795998e-02  1.53205924e-03\n",
      "   1.24707244e+00 -3.19709151e-01 -9.61881472e-02 -2.66335879e-02\n",
      "  -2.44041661e-01 -1.24420873e+00 -1.58319440e+00 -5.78354663e-01\n",
      "  -6.80060645e-01 -1.30760323e-01]]\n"
     ]
    }
   ],
   "source": [
    "print(logreg.coef_)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd0056b6",
   "metadata": {},
   "source": [
    "这里需要将模型的特征值系数转置，不然会出现所有特征点全在y轴上的情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "d472527d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1c2064439e8>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(logreg.coef_.T, 'o', label=\"C=1\")\n",
    "plt.plot(logreg100.coef_.T, '^', label=\"C=100\")\n",
    "plt.plot(logreg001.coef_.T, 'v', label=\"C=0.01\")\n",
    "plt.xticks(range(cancer.data.shape[1]), cancer.feature_names, rotation=90)\n",
    "plt.hlines(0, 0, cancer.data.shape[1])\n",
    "plt.ylim(-5, 5)\n",
    "plt.xlabel(\"Coefficient index\")\n",
    "plt.ylabel(\"Coefficient magnitude\")\n",
    "plt.legend()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
